// Plop 入口文件，需要导出一个函数
// 此函数接收一个 plop 对象，用于创建生成器任务
// plop.setGenerator 接收两个参数，一个是生成器的名字，另一个是生成器的配置选项
// 配置选项中 prompts 配置会在命令行发出的问题
// actions：需要执行的动作。 在路径中可以使用 {{}} 的方式得到命令行中输入的数据

module.exports = plop => {
  plop.setGenerator('component', {
    description: 'create a component',
    prompts: [
      {
        type: 'input',   // 问题回答方式为输入
        name: 'componentName',    // 问题的返回值的键
        message: 'component name', // 问题的描述信息
        default: 'MyComponent'  // 问题返回结果的默认值
      }
    ],
    actions: [
      {
        type: 'add', //代表添加文件
        path: 'src/components/{{componentName}}/index.js', // 输出路径
        templateFile: 'plop-templates/components/index.hbs' // 模板路径
      },
      {
        type: 'add',
        path: 'src/components/{{componentName}}/index.css',
        templateFile: 'plop-templates/components/index.css.hbs'
      }
    ]
  })
}